]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
ibusManager: Close candidate popup upon engine change
authorDaniel Drake <dan@reactivated.net>
Wed, 24 May 2023 08:34:42 +0000 (10:34 +0200)
committerDaniel Drake <dan@reactivated.net>
Wed, 24 May 2023 08:39:35 +0000 (10:39 +0200)
The IBusCandidatePopup can get 'stuck' in an active, visible state if
it is on-screen at the point when the input method is changed to a method
that doesn't use such popup (e.g. regular English).

Force the candidate popup to close when the engine is changed.
It will reappear (via regular lookup table update signal) if/when it is
next required.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6717
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2774>

js/misc/ibusManager.js

index 820ee827cf3e61c88face9407e72347072a36784..969556dc2f306de16326b7ece5a8a1a7d1313765 100644 (file)
@@ -3,6 +3,7 @@
 
 const { Gio, GLib, IBus, Meta, Shell } = imports.gi;
 const Signals = imports.misc.signals;
+const BoxPointer = imports.ui.boxpointer;
 
 const IBusCandidatePopup = imports.ui.ibusCandidatePopup;
 
@@ -253,6 +254,7 @@ var IBusManager = class extends Signals.EventEmitter {
             return;
 
         this._currentEngineName = engineName;
+        this._candidatePopup.close(BoxPointer.PopupAnimation.NONE);
 
         if (this._registerPropertiesId != 0)
             return;